package com.slmxz.tms.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.slmxz.tms.system.model.entity.Config;
import com.slmxz.tms.system.model.form.ConfigForm;
import com.slmxz.tms.system.model.query.ConfigPageQuery;
import com.slmxz.tms.system.model.vo.ConfigVO;

/**
 * 系统配置Service接口
 * @author sunyao
 * @Date 2024-11-05
 */
public interface ConfigService extends IService<Config> {


    /**
     *分页列表
     * @return
     */
    IPage<ConfigVO> selectPage(IPage<ConfigVO> page, ConfigVO config);

    /**
     * 保存系统配置
     * @param sysConfigForm 系统配置表单
     * @return 是否保存成功
     */
    boolean save(ConfigForm sysConfigForm);

    /**
     * 获取系统配置表单数据
     *
     * @param id 系统配置ID
     * @return 系统配置表单数据
     */
    ConfigForm getConfigFormData(Long id);

    /**
     * 根据KEY获取value
     * @param configKey
     * @return
     */
    String selectConfigByKey(String configKey);

    /**
     * 编辑系统配置
     * @param sysConfigForm 系统配置表单
     * @return 是否编辑成功
     */
    boolean edit(ConfigForm sysConfigForm);

    /**
     * 刷新系统配置缓存
     * @return 是否刷新成功
     */
    boolean refreshCache();

    /**
     * 获取系统配置
     * @param key 配置键
     * @return 配置值
     */
    Object getSystemConfig(String key);

    boolean deleteBatch(String ids);

}
